#pragma once

#include "Event.h"
#include <vector>

namespace Gw2API{

#define EVENT_UPDATE_SUCCESS 0
#define EVENT_UPDATE_ERROR_UNDEFEVT 1
#define EVENT_UPDATE_ERROR_EVTNOTFOUND 2
#define EVENT_UPDATE_ERROR_MAPNOTFOUND 3
#define EVENT_UPDATE_ERROR_WRONGWORLD 4


class Map
{
public:
	Map(std::string *id=0, std::string *name=0);
	~Map(void);

	//returns a strPtr to the maps name
	std::string* getName(){return &map_name;}

	//returns a strPtr to the maps id
	int getId(){return map_id;}

	//returns a vectorPtr with the current stored events
	std::vector<Event>* getEvents(){return &events;}

	//updates an event check with EVENT_UPDATE_* macros for error checking
	int updateEvent(std::string *evtId, std::string *evtState);

private:
	std::string map_name;
	int map_id;
	std::vector<Event> events;
};

};